/*
 * WordStream.cpp
 *
 *  Created on: 3 oct. 2009
 *      Author: Maxime Gaudin
 */

#include "WordStream.h"

#ifndef STD_H
	#include <cstdlib>
	#include <cstring>
	#define STD_H
#endif

#ifndef STREAM_H
	#include <iostream>
	#include <fstream>
	#define STREAM_H
#endif

WordStream::WordStream(char* Filename)
{
	readFile(Filename);
	Seeker = 0;
}

WordStream::~WordStream() {}

// Méthodes publiques ===================================================================
std::string WordStream::GetNextWord() { if(Seeker < words.size()) return words.at(Seeker++); }
void WordStream::SeekToStart(){ Seeker = 0; }
int WordStream::IsEndOfStream(){ return ((Seeker < words.size()) ? 0 : 1); }

// Méthode privées ======================================================================
void WordStream::readFile(char* Filename)
{
	const int MAX_WORD_SIZE = 255;
	char buffer[MAX_WORD_SIZE];

	std::ifstream fileInput(Filename);

	if(!fileInput)
	{
		std::cerr << "Le fichier n'existe pas ou n'a pas pu être ouvert !" << std::endl;
	}
	else
	{
		while(!fileInput.eof())
		{
			fileInput.getline(buffer, MAX_WORD_SIZE);
			words.push_back(*(new std::string(buffer)));
		}
	}
}
